<?php namespace Home\Controller; 
use Hdphp\Controller\Controller;
//购物车控制器
/*
 *
 *	Cart::update($data);    更新购物车需要传入商品的唯一 SID，同时传入更新的商品数量，
 *  Cart::getGoods();       购物车中商品数据
 *  Cart::getAllData();     购物车所有商品数据
 *  Cart::flush();          清空购物车
 *  Cart::getTotalPrice();  获得商品总价格
 *  Cart::getTotalNums();   统计购物车中的商品数量
 *  Cart::getOrderId();     获得定单号Cart::getOrderId()
 * 
 */
class CartController extends Controller{
	//构造函数
	public function __init()
	{
		parent::__init();
	}
	
	
	//我的购物车
    public function index(){
    	//p($_SESSION['cart']);
    	//p($_SESSION['cart']['goods']);
    	
    	$cartData = $this->goodsList();
		foreach($cartData as $k=>$v){
			$cartData[$k]['subTotal'] = $v['price']*$v['num'];//小计
		}
		//p($cartData);
		View::with('cartData',$cartData);
        View::make();
    }
	
	
	//获取购物车内 即 遍历session里商品
	private function goodsList(){
		//p($_SESSION['cart']['goods']);
		//实例化商品表
		$goodsModel = new \Common\Model\Goods;
		//定义数组存放值
		$list = array();
		//判断session中有没有存放商品
		if(!empty($_SESSION['cart']['goods'])){
			//把遍历的数据存放到变量中
			foreach($_SESSION['cart']['goods'] as $k=>$v){
				//p($k);// $k 是当前 商品的 SID -- b3868a26
				//p($v);exit;
				
				//p($v['id']);exit;
				//过滤掉不是商品的值 
				//判断变量类型是否为整数类型
				if(is_int($v['id'])){	
					$list[$k] = $goodsModel->where('goods_id='.$v['id'])->find();
				}else{
					$list[$k] = $v;
					continue;
				}
			}
		}
		//p($list);
		return $list;
	}
	
	
	
	//=======1.接收异步请求——计算库存数   开始=======
	public function ajaxStock(){ 
		$res = Q('post.res');
		//调 货品列表数据信息  数据库
		$model = new \Common\Model\Cargo;
		//注意：{$res}是字符串 必须加''
		$data = $model->where("spec='{$res}'")->find();
		if($data){
			echo json_encode($data);exit; 
		}else{
			echo json_encode(false);exit;
		}
	}
	//=======接收异步请求——计算库存数  结束=======
	
	//=======2.商品详情指定数据项 异步提交发送到我的购物车页   开始=======
	public function addCart(){
		//p(Q('post.cid'));
		$data = array(
		    'id'        => Q('post.id'),  // 商品 ID 
		    'name'      => Q('post.name'),// 商品名称 
		    'num'       => Q('post.num'), // 商品数量 
		    'price'     => Q('post.sprice'), // 商城价
		    'options' => array(
		    			'pic'    => Q('post.pic'),    // 商品图
					    'mprice' => Q('post.mprice'), // 市场价
		    			'color'  => Q('post.color'),  // 颜色
		    			'size'   => Q('post.size'),   // 尺寸
		    			'cid'    => Q('post.cid'),   // 商品分类id
			)	
		); 
		// 添加到 购物车
		Cart::add($data); 
		echo json_encode($data);exit;
	}
	//=======商品详情指定数据项 异步提交发送到我的购物车页    结束=======
	
	
	//删除购物车中商品
	public function delCartGood(){

		p($_SESSION['cart']);
		//接收数据
		$data = Q("post.");

		//遍历
		foreach($data as $k=>$v) {
			
			//删除,unset可以删除下标  $_SESSION['cart']['goods']
			unset($_SESSION['cart']['goods'][$k]); 
	
			//判断是否删除成功
			if(in_array($v,$_SESSION['cart'][$v])){

				echo json_encode(false);exit;
			}

		}

	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
}